import updateManager from './common/updateManager';

App({
  globalData: {
    userInfo: null,
    token: null
  },

  onLaunch: function () {
    // 在小程序初始化完成时触发，可以用来做一些全局的初始化操作

    // 示例：检查本地存储中是否有用户信息和 token，并设置到全局数据中
    const userInfo = wx.getStorageSync('userInfo');
    const token = wx.getStorageSync('token');
    if (userInfo && token) {
      this.globalData.userInfo = userInfo;
      this.globalData.token = token;
    }

    // 调用 updateManager 方法
    updateManager();
  },

  // 自定义全局方法，用于发送请求
  request: function (options) {
    const token = this.globalData.token;
    if (token) {
      // 如果存在 token，则将 token 添加到请求头中
      if (!options.header) {
        options.header = {};
      }
      options.header.Authorization = `Bearer ${token}`;
    }

    // 发送请求
    wx.request({
      ...options,
      success: response => {
        // 请求成功，处理响应
        if (response.statusCode === 200) {
          if (response.data.code === 200) {
            // 请求成功，并且后端返回成功状态码
            if (options.success) {
              options.success(response.data);
            }
          } else {
            // 请求成功，但后端返回错误信息
            wx.showToast({
              title: response.data.msg || '请求失败',
              icon: 'none'
            });
          }
        } else {
          // 请求失败，显示错误信息
          wx.showToast({
            title: '请求失败',
            icon: 'none'
          });
        }
      },
      fail: err => {
        // 请求失败，显示错误信息
        wx.showToast({
          title: '请求失败',
          icon: 'none'
        });
      }
    });
  }
});
